package cn.tedu.eb_film.pojo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 电影数据列表项VO类
 *
 * @author daiojie
 * @since 2023/03/17 13:01:04
 * 
 */
@Data
public class MovieListVO implements Serializable {
    /**
     * 电影id
     */
    private Long id;

    /**
     * 电影中文名
     */
    private String znName;

    /**
     * 电影英文名
     */
    private String enName;

    /**
     * 语言版本
     */
    private String languageVersion;

    /**
     * 空间效果
     */
    private String dimension;

    /**
     * 演职人员
     */
    private String actor;

    /**
     * 导演
     */
    private String director;

    /**
     * 电影详情
     */
    private String detail ;

    /**
     * 电影时长
     */
    private Long duration;


    /**
     * 电影类型
     */
    private String  type;

    /**
     * 电影评分
     */
    private BigDecimal score;

    /**
     * 电影票房
     */
    private Long boxOffice;

    /**
     * 观看人数
     */
    private Long numberViewers;

    /**
     * 评论人数
     */
    private Long commentCount;

    /**
     * 上映时间
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss",shape = JsonFormat.Shape.STRING)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime releaseDate;

    /**
     * 制作地区
     */
    private String country;

    /**
     * 电影海报
     */
    private String pictureUrl;

    /**
     * 预告片
     */
    private String trailerUrl;

    /**
     * 电影状态
     */
    private Integer state;

    /**
     * 想看人数
     */
    private Long numberWantToSee;

    /**
     * 收藏的人数
     */
    private Long collectUserCount;
}
